This application relates in general to computer communication interfaces, and more particularly to diverting data from a PCI bus to a video or audio device to reduce bus traffic on the PCI bus.
Background: The Computer Bus
Computer systems are conventionally designed with a generic system bus. A bus is a channel over which information flows between two or more devices. When data is passed between devices over a bus, address data must also be sent to indicate to the receiving device where in memory the received data should be stored. In some systems, this is accomplished by including some sort of flag bit with the transmitted data, to indicate which bytes or words should be treated as addresses and which should be treated as pure data. In other systems, each bus has a data bus and an address bus, where the address bus carries information about where in memory the data is to be transferred to or from.
The xe2x80x9c1394 busxe2x80x9d and xe2x80x9ccard busxe2x80x9d are busses for connecting peripherals to a computing system, such as a personal computer. The local I/O bus of a personal computer is a high speed input/output bus for connecting peripherals to memory, chip sets, and the processor.
Background: The PCI Bus
One conventional local I/O bus is the Peripheral Component Interconnect bus (PCI). The PCI bus is 32 bits wide, but can be extended to 64 bit in width. PCI is a standard for interconnecting the peripherals, e.g. cards which are plugged into the motherboard, with both the system memory and the CPU of a computer system. Full technical details may be found in the PCI Local Bus Specification 2.1 (PCI SIG, 1995), which is hereby incorporated by reference. It was designed from the start to alleviate many of the headaches that installation of a new card into an ISA bus-based computer would cause (IRQ conflicts, address conflicts, etc.). All PCI standards are set by a committee to ensure wide industry support.
Background: Data Handling on a Generic System Bus
Communication within the computing system is accomplished by transferring data across the generic system bus. The system bus is designed to work effectively across multiple data types, band width, requirements, and destinations. The generic system bus is extremely valuable as it offers a common mechanism for introducing peripheral data to the computer system. However, the system bus is not optimized to work for any single function, and as a result, new data types, such as video or audio data, are not efficiently handled with the generic system bus. Conventionally, a computer system utilizing a generic system bus places all audio or video data on the PCI bus for processing within the computer system. Having seen the data on the computing system, the CPU transfers the data to a frame buffer coupled to the PCI bus. Therefore, an additional bus transfer of the data is involved. For high band width data, such as video or audio data, placing such data on the PCI bus may cause performance problems within the computing system as this data substantially consumes the entire band width of the PCI bus. What is needed is an interface capable of identifying data transmitted on a PCI bus corresponding to a high bandwidth device, such as a video device, and capable of data diverting such to the device without having to again transmit the data on the PCI bus.
Innovative System and Method for Data Conversion on a System Bus
The present application discloses a system and method for selectably redirecting data passing across a system bus. In particular, the innovative system watches a generic system bus, e.g. a PCI bus, for specific types of data, e.g. audio or video data, pulls this data from the PCI bus, and passes it directly to the target bus, which will typically be a bus which is optimized for that type of data.